package org.naxx.security.model.match;

import org.naxx.security.datatype.DataType;
import org.naxx.security.model.expression.Expression;

/**
 * Represents AttributeValue element from XACML specification.
 * 
 * <p>Users of implementations of this class must not allow creation of
 * semantically invalid objects, such as contaning value that does not
 * match data type.
 */
public interface ValueHolder extends Expression {

	public DataType getDataType();
	
	/**
	 * 
	 * @return value of type returned by <code>getDataType()</code>.
	 */
	public Object getValue();
}
